package com.hongyuan.sellfitness.ui.person.fragment;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import androidx.annotation.Nullable;
import androidx.lifecycle.ViewModelProviders;
import com.hongyuan.sellfitness.R;
import com.hongyuan.sellfitness.base.AppViewModelFactory;
import com.hongyuan.sellfitness.base.Constants;
import com.hongyuan.sellfitness.base.CustomFragment;
import com.hongyuan.sellfitness.databinding.FragmentMyReservationBinding;
import com.hongyuan.sellfitness.ui.person.view_mode.MyReservationViewModel;
import com.hongyuan.sellfitness.utils.CustomDialog;
import com.hongyuan.sellfitness.utils.TimeUtil;

import me.tatarka.bindingcollectionadapter2.BR;

public class MyReservationFragment extends CustomFragment<FragmentMyReservationBinding, MyReservationViewModel> {

    @Override
    public int initContentView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return R.layout.fragment_my_reservation;
    }

    @Override
    public int initVariableId() {
        return BR.viewModel;
    }

    @Override
    public MyReservationViewModel initViewModel() {
        //使用自定义的ViewModelFactory来创建ViewModel，如果不重写该方法，则默认会调用NetWorkViewModel(@NonNull Application application)构造方法
        AppViewModelFactory factory = AppViewModelFactory.getInstance(getActivity().getApplication());
        return ViewModelProviders.of(this, factory).get(MyReservationViewModel.class);
    }

    @Override
    public void initView() {
        super.initView();
        setOnRefresh(binding.refresh,REFRESH_0X3);
        setEnableLoadMore(Constants.GET_MEMBER_APPOINTMENT_COURSE_PRIVITE_LIST);
        setEnableRefresh(Constants.GET_MEMBER_APPOINTMENT_COURSE_PRIVITE_LIST);
    }


    @Override
    public void initViewObservable() {
        super.initViewObservable();

        viewModel.uc.showSuccess.observe(this, aVoid -> {
            CustomDialog.groupCoursePunchSuccess(getContext(), TimeUtil.formatDataMsec(TimeUtil.dateFormatDotMD,System.currentTimeMillis()),
                    TimeUtil.getWeek());
        });
    }
}
